/**
 * 链表L中有多个值为x的元素
 * 要求删除这些元素
 */

#include"LinkedList.h"

/**
 * 使用双指针实现
 */
void del(LinkedList *l,int x){
    LinkedListNode*p=l->next,*pre=l,*q;
    while (p!=nullptr)
    {
        if(p->val==x){//p是值为x的节点
            q=p;//q指向被删除的节点，用来释放内存
            p=p->next;
            pre->next=p;//x的前驱指向x的下一个，从而将x删除
            delete q;//释放x指针
        }else{//没有找到，p和pre同时后移
            pre=p;
            p=p->next;
        }
    }
    


}